﻿<%
Class testAction
	'''测试aes
	Public Sub taes()
		Sa.Use("Aes")
		W(Aes.Password & "<br/>")
		Aes.Password = "123456"
		W(Aes.Password & "<br/>")
		Dim t_s : t_s = "这是加密前的字符串"
		W("实际字符1:"&t_s&"<br/>")
		t_s = Aes.Encode(t_s)
		W("加密结果1:"&t_s&"<br/>")
		t_s = Aes.Decode(t_s)
		W("解密结果1:"&t_s&"<br/>")
		Dim t_r : t_r = "这是要临时加密的字符串,密钥是654321"
		W("实际字符2:"&t_r&"<br/>")
		t_r = Aes.AesEncrypt(t_r, "654321")
		W("加密结果2:"&t_r&"<br/>")
		t_r = Aes.AesDecrypt(t_r, "654321")
		W("解密结果2:"&t_r&"<br/>")
		Dim t_s3
		W("实际字符3:"&t_s3&"<br/>")
		t_s3 = Aes.Encode(t_s3)
		W("加密结果3:"&t_s3&"<br/>")
		t_s3 = Aes.Decode(t_s3)
		W("解密结果3:"&t_s3&"<br/>")
	End Sub
	
	'''测试Base64
	Public Sub tbase64()
		Sa.Use("Base64")
		Dim t_s1 : t_s1 = "这是第一次要加密的字符串"
		W("实际字符1:"&t_s1&"<br/>")
		t_s1 = Base64.Encode(t_s1)
		W("加密结果1:"&t_s1&"<br/>")
		t_s1 = Base64.Decode(t_s1)
		W("解密结果1:"&t_s1&"<br/>")
		Dim t_s2 : t_s2 = "这是第二次要加密的字符串"
		W("实际字符2:"&t_s2&"<br/>")
		t_s2 = Base64.E(t_s2)
		W("加密结果2:"&t_s2&"<br/>")
		t_s2 = Base64.D(t_s2)
		W("解密结果2:"&t_s2&"<br/>")
	End Sub
	
	'''测试cache
	Public Sub tcache()
		Sa.Use("Fso")
		Sa.Use("Cache")
		Cache("s5").Remove()
		If Cache("s1").Ready Then
			W("显示成功1:"&Cache("s1")&"<br/>")
		Else
			Dim t_s1 : t_s1 = "这是一段文字,我准备把他保存到文件缓存中"
			Cache("s1") = t_s1
			Cache("s1").Save()
			W("保存成功1:"&Cache("s1")&"<br/>")
		End If
		If Cache("s2").Ready Then
			W("显示成功2:"&Cache("s2")&"<br/>")
		Else
			Dim t_s2 : t_s2 = "这是一段文字,我准备把他保存到内存缓存中"
			Cache("s2") = t_s2
			Cache("s2").SaveApp()
			W("保存成功2:"&Cache("s2")&"<br/>")
		End If
		If Cache.CountEnabled Then
			W("已保存缓存个数:"&Cache.Count&"<br/>")
		Else
			W("当前不允许查询缓存个数"&"<br/>")
		End If
		Cache("s3") = "3"
		Cache("s4") = "4"
		Cache("s5") = "5"
		Cache.SaveAll()
	End Sub
	
	'''测试Char
	Public Sub tchar()
		Sa.Use("Char")
		W(Char.SuperTrim(" abcd efg ", "") & "<br/>")
		W(Char.SuperTrim(" abcd efg ", "ab") & "<br/>")
		W(Char.SuperTrim(" abcd efg ", Array("a","b","g")) & "<br/>")
		W(Char.SuperLTrim(" abcd efg ", "") & "<br/>")
		W(Char.SuperLTrim(" abcd efg ", "ab") & "<br/>")
		W(Char.SuperLTrim(" abcd efg ", Array("a","b","g")) & "<br/>")
		W(Char.SuperRTrim(" abcd efg ", "") & "<br/>")
		W(Char.SuperRTrim(" abcd efg ", "ab") & "<br/>")
		W(Char.SuperRTrim(" abcd efg ", Array("a","b","g")) & "<br/>")
		W(Char.StrLen("我是中国人！", 3) & "<br/>")
		W(Char.SL("abcABC") & "<br/>")
		W(Char.StrSub("abcABC", 20, "***") & "<br/>")
		W(Char.SS("哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈", 3, "") & "<br/>")
		W(Char.BoldWord("这是个很关键的事","关键") & "<br/>")
		W(Char.BW("这是个很严重的事","严重") & "<br/>")
		W(Char.BW("这是个很不严重的事","哈哈") & "<br/>")
		W(Char.ToUnicode("这是个很不严重的事") & "<br/>")
		W(Char.ToUnicode("中文") & "<br/>")
		W(Char.TU("My Name Is HandMU") & "<br/>")
		W(Char.GB2UTF("这是个很不严重的事") & "<br/>")
		W(Char.GTU("这是个很严重的事") & "<br/>")
		W(Char.GTU("My Name Is HandMU") & "<br/>")
		W(Char.Bin2Hex("10101010101010101") & "<br/>")
		W(Char.C2To16("10101010101010101") & "<br/>")
		'W(Char.ConvChinese("哈哈") & "<br/>")
		W(Char.UTG("@☆■△▲※〓§№☆★○●●◎◇哈哈")& "<br/>")
		BW(Char.Str2Bin("是我123ABC"))
		W(Char.BTS(Char.STB("是我123ABC")))
		W(Char.Bin2Str(Char.STB("是我123ABC")) & "<br/>")
		W(Char.LShift(1000,5) & "<br/>")
		W(Char.RShift(1000,5) & "<br/>")
	End Sub
	
	'''测试Cookie
	Public Sub tcookie()
		Sa.Use("Cookie")
		Sa.Use("Aes")
		Call Cookie.Set("c1", "这是第一个Cookie", "2013-12-30")
		W(Cookie("c1") & "<br/>")
		Cookie.Encode = True
		Call Cookie.Set("c2", "这是第二个Cookie", 30)
		W(Cookie("c2") & "<br/>")
		Call Cookie.Set("c3", "这是第三个Cookie", Array("30", "/data/_cache/_cookie/", "dev.ashapo.com"))
		W(Cookie("c3") & "<br/>")
		Call Cookie.Set("c4", "这是第一个Cookie", 30)
		'Cookie.Encode = False
		'W(Cookie.Compare("c1", "c2") & "<br/>")
		'W(Cookie.Compare("c1", "c4") & "<br/>")
		W(Cookie.Has("c4") & "<br/>")
		W(Cookie.Has("c5") & "<br/>")
		Cookie.Remove("c3")
		Cookie.RemoveAll()
	End Sub
	
	'''测试Db
	Public Sub tdb()
		Sa.Use("Db")
		Db.Conn = Db.OpenConn(1, G_AccessPath , G_AccessPwd)
		'W(Db.getDataType_(Db.Conn))
		W(Db.DatabaseType & "<br/>")
		Db.QueryType = 1
		Db.PageSpName = "chen_sp_pager"
		Dim t_db : Set t_db = Db.New()
		t_db.Conn = Db.CreatConn("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("/data/##db##/NewDataTest.mdb")&";Jet OLEDB:Database Password=;")
		Db.C(t_db.Conn)
		Dim t_rs
		Set t_rs = Db.GRS("Select * From News")
		While Not t_rs.Eof
			W(t_rs("ID") & "|" & t_rs("title") & "|" & t_rs("addtime") & "<br/>")
			t_rs.MoveNext
		Wend
		Db.C(t_rs)
		'W(Db.valueToSql_("News", Array("title:哈哈哈’'", "content:这是文章内容", "editor:HandMU", "addtime:"&Now(), "cid:2", "px:1", "img:none"), 1) & "<br/>")
		'W(Db.valueToSql_("News", Array("title:哈哈哈’'", "content:这是文章内容", "editor:HandMU", "addtime:"&Now(), "cid:2", "px:1", "img:none"), 2) & "<br/>")
		'W(Db.valueToSql_("News", Array("title:哈哈哈’'", "content:这是文章内容", "editor:HandMU", "addtime:"&Now(), "cid:2", "px:1", "img:none"), 3) & "<br/>")
		'W(Db.valueToSql_("News", Array("title:哈哈哈’'", "content:这是文章内容", "editor:HandMU", "addtime:"&Now(), "cid:2", "px:1", "img:none"), 4) & "<br/>")
		'W(Db.valueToSql_("News", Array("title:哈哈哈’'", "content:这是文章内容", "editor:HandMU", "addtime:"&Now(), "cid:2", "px:1", "img:none"), 5) & "<br/>")
		W(Db.SGR("News", Array("editor:1", "cid:9"), "px") & "<br/>")
		W(Db.SGR("News:title,addtime,img", Array("editor:1", "cid:9"), "px Desc") & "<br/>")
		W(Db.SGR("News:title,addtime,img:10", Array("editor:1", "cid:9"), "px Desc") & "<br/>")
		W(Db.SGR("News:*:10", "editor='1' And cid>=9", "px Desc") & "<br/>")
		W(Db.SGR("News:title,addtime,img", Array("editor:1", "cid:9"), "") & "<br/>")
		Set t_rs = Db.GR("News:title,addtime,img", Array("editor:1", "cid:9"), "px Desc")
		While Not t_rs.Eof
			W(t_rs("img") & "|" & t_rs("title") & "|" & t_rs("addtime") & "<br/>")
			t_rs.MoveNext
		Wend
		Db.C(t_rs)
		Set t_rs = Db.GRD("News", Array("editor:1", "cid:9"))
		While Not t_rs.Eof
			W(t_rs("id") & "|" & t_rs("img") & "|" & t_rs("title") & "|" & t_rs("addtime") & "<br/>" & t_rs("content") & "<br/>")
			t_rs.MoveNext
		Wend
		Db.C(t_rs)
		Set t_rs = Db.GRR("News:id:5", Array("editor:1", "cid:9"))
		While Not t_rs.Eof
			W(t_rs("id") & "|" & t_rs("img") & "|" & t_rs("title") & "|" & t_rs("addtime") & "<br/>")
			t_rs.MoveNext
		Wend
		Db.C(t_rs)
		Set t_rs = Db.GRR("News:id,title:5", Array("editor:1", "cid:9"))
		While Not t_rs.Eof
			W(t_rs("id") & "|" & t_rs("title") & "<br/>")
			t_rs.MoveNext
		Wend
		Db.C(t_rs)
		'以下是错误使用,ID必须放在第一位
		'Set t_rs = Db.GRR("News:title,id:5", Array("editor:1", "cid:9"))
		'While Not t_rs.Eof
		'	W(t_rs("id") & "|" & t_rs("title") & "<br/>")
		'	t_rs.MoveNext
		'Wend
		'Db.C(t_rs)
		W(Db.AutoID("News:id") & "<br/>")
		W(Db.RandStr(10, "News:title") & "<br/>")
		W(Db.RandStr("100-999", "News:title") & "<br/>")
		W(Db.RandStr("8:0123456789abcdefghijklmnopqrstuvwxyz~!@#$%^&*_-+=", "News:title") & "<br/>")
		W(Db.RandStr("#<6>:0123456789ABCDEF", "News:title") & "<br/>")
		W(Db.RandStr("{<8>-<4>-<4>-<4>-<12>}:0123456789ABCDEF", "News:title") & "<br/>")
		W(Db.RandStr("CN-\<86\>-<6>-<10000-99999>", "News:title") & "<br/>")
		W(Db.RandStr("No.<10000-99999>", "News:title") & "<br/>")
		W(Db.Rand(100, 200, "News:id") & "<br/>")
		W(Db.Exec("Insert Into [Temp] (title,content,addtime,cid) Values ('这是标题','这是内容','" & Now() & "',3)") & "<br/>")
		Set t_rs = Db.Exec("Select * From News")
		While Not t_rs.Eof
			W(t_rs("ID") & "|" & t_rs("title") & "|" & t_rs("addtime") & "<br/>")
			t_rs.MoveNext
		Wend
		Db.C(t_rs)
		W(Db.SAR("Temp", Array("title:哈哈哈", "content:呵呵呵", "addtime:"&Now(), "cid:9"))& "<br/>")
		W(Db.AR("Temp:id", Array("title:哈哈哈", "content:呵呵呵", "addtime:"&Now(), "cid:9"))& "<br/>")
		W(Db.AR("Temp", Array("title:哈哈哈1", "content:呵呵呵1", "addtime:"&Now(), "cid:91"))& "<br/>")
		W(Db.SUR("Temp", "id=3", Array("title:哈哈哈3", "content:呵呵呵3", "addtime:"&Now(), "cid:3"))& "<br/>")
		W(Db.UR("Temp", "id=3", Array("title:哈哈哈3", "content:呵呵呵3", "addtime:"&Now(), "cid:3"))& "<br/>")
		W(Db.SDR("Temp", "id=3")& "<br/>")
		W(Db.SDR("Temp", "id:3,4,5,6")& "<br/>")
		W(Db.SDR("Temp", Array("cid:3", "title:哈哈哈"))& "<br/>")
		W(Db.DR("Temp", Array("cid:9", "title:哈哈哈"))& "<br/>")
		W(Db.RT("Temp", "id=3", "content")& "<br/>")
		Dim t_a : t_a = Db.RT("Temp", "id=3", "title,content,addtime")
		If Has(t_a) Then
			W("标题:" & t_a(0) & "<br/>")
			W("内容:" & t_a(1) & "<br/>")
			W("时间:" & t_a(2) & "<br/>")
		Else
			W("无此记录!<br/>")
		End If
		Set t_db = Db.New()
		t_db.Conn = Db.OpenConn(0, "FaGuiNews" , "sa:123456@(local)")
		'直接输出
		W(t_db.DoSP("sp_return_int:0","") & "这是存储过程输出<br/>")
		W("以下是存储过程带参输出,同时发现text/ntext类型的落后之处,以后应减少该类数据类型的使用<br/>")
		'返回Dictionary对象
		Dim t_sp1 : Set t_sp1 = t_db.DoSP("sp_return_str:1",Array("@@title", "@@content"))
		W("标题:" & t_sp1("@@title") & "<br/>")
		W("以下是文章内容,由ntext转化至nchar(max)：<br/>")
		W(t_sp1("@@content") & "<br/>")
		W("SP返回值：<font color='red'>" & t_sp1("return") & "</font><br/>")
		W("以下这个存储过程返回数据集,可以返回多个数据集<br/>")
		'返回RecordSet记录集对象
		Dim t_sp2 : Set t_sp2 = t_db.DoSP("sp_return_trs:2","")
		While Not t_sp2.Eof
			W(t_sp2("id") & "|" & t_sp2("title") & "|" & t_sp2("ClassID1") & "|" & t_sp2("ClassID2") & "<br/>")
			t_sp2.MoveNext
		Wend
		WN("获取下一个记录集")
		Set t_sp2 = t_sp2.NextRecordset() '获取下一个记录集
		While Not t_sp2.Eof
			W(t_sp2("id") & "|" & t_sp2("main_id") & "|" & t_sp2("px") & "<br/>")
			WN("---------------------------以下是内容--------------------------------")
			WN("") : WN("")
			W(t_sp2("content"))
			WN("") : WN("")
			WN("---------------------------以上是内容--------------------------------")
			t_sp2.MoveNext
		Wend
		Db.C(t_sp2)
		W("ashapo自带的分页存储过程是带参输出/输入,同时有返回数据集的,以下是Demo,实际项目会结合Pager类进行分页输出<br/>")
		Dim t_pagesize : t_pagesize = 10	'每页10个
		Dim t_pagenow : t_pagenow = 10	'当前在第10页(该值在实际项目中以参数进行传递)
		Dim t_cfg
		t_cfg = Array("@TableName:n_news_FaGui", "@FieldList:*", "@Where:", "@Order:id Asc", "@PrimaryKey:id", "@SortType:3", "@RecorderCount:0", "@PageSize:"&t_pagesize, "@PageIndex:"&t_pagenow, "@@TotalCount", "@@TotalPageCount")
		'返回数组(元素0是RecordSet记录集对象,元素1是Dictionary对象)
		Dim t_sp3 : t_sp3 = t_db.DoSP("sp_ashapo_pager:3", t_cfg)
		WN("总记录数:" & t_sp3(1)("@@TotalCount"))
		WN("总页数：" & t_sp3(1)("@@TotalPageCount"))
		WN("输出分页内容---")
		While Not t_sp3(0).Eof
			W(t_sp3(0)("id") & "|" & t_sp3(0)("title") & "|" & t_sp3(0)("ClassID1") & "|" & t_sp3(0)("ClassID2") & "<br/>")
			t_sp3(0).MoveNext
		Wend
		Db.C(t_sp3)
		Dim i : i = 0
		WN("获取分页数据集及分页信息(array方式)/采取默认pageParam:p、pageSize:10、不手动指定当前页:以pageParam进行")
		Set t_rs = t_db.GPR(0,Array("n_news_FaGui:id,Title,ClassID1,Hits","IsLock=0 And Hits>50","Addtime Desc","id"))
		Do While Not t_rs.Eof
			i = i + 1
			WN("id:" & t_rs("id") & "|标题:" & t_rs("Title") & "|分类ID:" & t_rs("ClassID1") & "|点击数:" & t_rs("Hits"))
			'分页指定(可以在MVC进行通用)
			If i >= 10 Then Exit Do
			t_rs.MoveNext
		Loop
		WN("当前页码:" & t_db.PageIndex)
		WN("当前分页总记录数:" & t_db.PageRecordCount)
		WN("当前分页总页数:" & t_db.PageCount)
		Db.C(t_rs)
		'手动清空当前分页,不然会影响到同页面的分页
		t_db.PageIndex = Null
		WN("获取分页数据集及分页信息(sql方式)/采取手动page参数、pageSize、不手动指定当前页:以page参数进行")
		Set t_rs = t_db.GPR("1:page:5", "Select id,Title,ClassID1,Hits From n_news_FaGui Where IsLock=0 And Hits>50 Order By Addtime Desc")
		i = 0
		Do While Not t_rs.Eof
			i = i + 1
			WN("id:" & t_rs("id") & "|标题:" & t_rs("Title") & "|分类ID:" & t_rs("ClassID1") & "|点击数:" & t_rs("Hits"))
			'分页指定(可以在MVC进行通用)
			If i >= 5 Then Exit Do
			t_rs.MoveNext
		Loop
		WN("当前页码:" & t_db.PageIndex)
		WN("当前分页总记录数:" & t_db.PageRecordCount)
		WN("当前分页总页数:" & t_db.PageCount)
		Db.C(t_rs)
		'手动清空当前分页,不然会影响到同页面的分页
		t_db.PageIndex = Null
		'手动指定当前分页,在GPR执行前生效(会覆盖page的GET值)
		t_db.PageIndex = 10
		WN("获取分页数据集及分页信息(默认存储过程方式)/采取手动page参数、pageSize、手动指定当前页")'这个默认分页应该可以再优化以下
		Set t_rs = t_db.GPR(":p:10",Array("n_news_FaGui", "id,Title,ClassID1,Hits,Addtime", "IsLock=0 And Hits>50","Addtime Desc,id Asc","id",3))
		i = 0
		Do While Not t_rs.Eof
			i = i + 1
			WN("id:" & t_rs("id") & "|标题:" & t_rs("Title") & "|分类ID:" & t_rs("ClassID1") & "|点击数:" & t_rs("Hits"))
			'分页指定(可以在MVC进行通用)
			If i >= 10 Then Exit Do
			t_rs.MoveNext
		Loop
		WN("当前页码:" & t_db.PageIndex)
		WN("当前分页总记录数:" & t_db.PageRecordCount)
		WN("当前分页总页数:" & t_db.PageCount)
		Db.C(t_rs)
		'手动清空当前分页,不然会影响到同页面的分页
		t_db.PageIndex = Null
		'手动指定当前分页,在GPR执行前生效(会覆盖page的GET值)
		t_db.PageIndex = 10
		WN("获取分页数据集及分页信息(指定存储过程方式,不能和默认分页存储过程同名)/采取手动page参数、pageSize、手动指定当前页")
		Set t_rs = t_db.GPR("sp_return_pager:p:10",Array("@TableName:n_news_FaGui","@FieldList:id,Title,ClassID1,Hits,Addtime","@Where:IsLock=0 And Hits>50","@Order:Addtime Desc,id Asc","@PrimaryKey:id","@SortType:3","@RecorderCount:0", "@PageSize:10", "@PageIndex:"&t_db.PageIndex,"@@RecordCount","@@PageCount"))
		i = 0
		Do While Not t_rs.Eof
			i = i + 1
			WN("id:" & t_rs("id") & "|标题:" & t_rs("Title") & "|分类ID:" & t_rs("ClassID1") & "|点击数:" & t_rs("Hits"))
			'分页指定(可以在MVC进行通用)
			If i >= 10 Then Exit Do
			t_rs.MoveNext
		Loop
		WN("当前页码:" & t_db.PageIndex)
		WN("当前分页总记录数:" & t_db.PageRecordCount)
		WN("当前分页总页数:" & t_db.PageCount)
		Db.C(t_rs)
		Set Db = Nothing
	End Sub
	
	'''测试Fso
	Public Sub tfso()
		Sa.Use("Fso")
		Fso.FsoName = "Scripting.FileSystemObject"
		Fso.CharSet = "UTF-8"
		Fso.Force = True
		Fso.OverWrite = True
		Fso.SizeFormat = "M"
		WN("网站路径:" & Fso.MapPath("/"))
		WN(Fso.IsFile("/robots.txt") & "|" & Fso.IsFile("/robots.txt2"))
		WN(Fso.IsFolder("/data/") & "|" & Fso.IsFolder("/data2/"))
		WN(Fso.Read("/robots.txt"))
		WN(Fso.Read("/robots2.txt") & "这个是不存在的文件,所以有Raise(Err)")
		Sa.Use("Char")	'SaveAs要用到二进制流,用Char类产生
		Dim t_s : t_s = Char.STB("这是个很关键的事,把字符串转为二进制流写入文件!")
		WN(Fso.SaveAs("/1.txt", t_s))
		t_s = "这是个很不关键的事,把字符串直接写入文件!"
		WN(Fso.CreateFile("/2.txt", t_s))
		WN(Fso.UpdateFile("/1.txt", "关键", "非常关键"))
		t_s = "这是个很不关键的事,把字符串附加到已有文件!"
		WN(Fso.AppendFile("/2.txt", t_s))
		WN(Fso.FormatSize(10241024102400, "AUTO"))
		WN(Fso.FormatSize(10241024102400, "G"))
		WN(Fso.FormatSize(10241024102400, "M"))
		WN(Fso.FormatSize(10241024102400, "B"))
		WN(Fso.FormatSize(10241024102400, "K"))
		WN(Fso.FormatSize(10241024102400, "NUM"))
		Dim t_list
		t_list = Fso.List("/app/Action/",0)
		For i = 0 To UBound(t_list,2)
			WN("路径：/app/Action/" & t_list(0,i) & " 大小：" & t_list(1,i) & " 最后更新：" & t_list(2,i) & " 属性：" & t_list(3,i) & " 类型：" & t_list(4,i))
		Next
		t_list = Fso.List("/app/Action/",1)
		For i = 0 To UBound(t_list,2)
			WN("路径：/app/Action/" & t_list(0,i) & " 大小：" & t_list(1,i) & " 最后更新：" & t_list(2,i) & " 属性：" & t_list(3,i) & " 类型：" & t_list(4,i))
		Next
		t_list = Fso.List("/app/Action/",2)
		For i = 0 To UBound(t_list,2)
			WN("路径：/app/Action/" & t_list(0,i) & " 大小：" & t_list(1,i) & " 最后更新：" & t_list(2,i) & " 属性：" & t_list(3,i) & " 类型：" & t_list(4,i))
		Next
		WN(Fso.NameOf("/app/Action/connAction.class.asp"))
		WN(Fso.ExtOf("/app/Action/connAction.class.asp"))
		WN(Fso.SetAttr("/.htaccess","-R,-A,-S,-H"))
		WN(Fso.CopyFile("/1.txt","/temp/1.txt"))
		WN(Fso.Copy("/static/style/admin/jqueryui/","/temp/"))
		WN(Fso.MoveFile("/1.txt","/temp/"))
		WN(Fso.MoveFile("/KindEditor/*","/temp/k/"))
		WN(Fso.Move("/web/","/temp/"))
		WN(Fso.DelFile("/*.ini"))
		WN(Fso.Del("/kkk/"))
		WN(Fso.Ren("/static/", "static2"))
		WN(Fso.Ren("/2.txt", "2222.txt"))
	End Sub
	
	'''测试HTTP
	Public Sub thttp()
		Sa.Use("Char")	'Http.Body要用到二进制流,用Char类产生
		Sa.Use("Http")
		Http.Url = "http://www.baidu.com"
		Http.Method = "GET"
		Http.CharSet = "UTF-8"
		Http.Open
		'W(Http.Html)
		'W(Http.Post("www.oschina.net"))
		'W(Http.IsWork("www.ashapo.com"))
		'W(Http.Headers)
		'W(Char.BTS(Http.Body))
		W(Http.Text)
	End Sub
	
	'''测试Jpeg
	Public Sub tjpg()
		Sa.Use("Jpeg")
		'WN(Jpeg.Version)
		'WN(Jpeg.Expires)
		'Jpeg.Open("/temp/favicon.png")
		'WN("生成一个随机码图片,不保存直接显示")
		'Dim t_p : t_p = Jpeg.RandCode("1234", "/temp/favicon.png", "", "")
		'WN("生成一个随机码图片,保存直接显示")
		'Dim t_p2 : t_p2 = Jpeg.RandCode("", "/temp/favicon.png", "/temp/faviconxx.png", "checkcode")
		'WN("Session名称" & Session("checkcode"))
		'输出当前图片
		'Jpeg.Flush()
		'WN(Jpeg.Thumbnail("/static/images/anonymous.png", "/temp/anonymous.png", 25,25,100,True))
		'WN(Jpeg.Merge("/static/images/anonymous.png", "/static/images/contact.png", "/temp/merge.png",20,20))
		'WN(Jpeg.WaterMarkPosition(200,200,100,100,20)(0))
		'WN(Jpeg.WaterMarkPosition(200,200,100,100,20)(1))
		'WN(Jpeg.WaterMarkPosition(200,200,100,100,1)(0))
		'WN(Jpeg.WaterMarkPosition(200,200,100,100,2)(1))
		'WN(Jpeg.WaterMarkPosition(200,200,100,100,3)(0))
		'WN(Jpeg.WaterMarkPosition(200,200,100,100,4)(1))
		'WN(Jpeg.WaterMarkPosition(200,200,100,100,5)(0))
		'WN(Jpeg.WaterMarkPosition(200,200,100,100,6)(1))
		'WN(Jpeg.WaterMarkPosition(200,200,100,100,7)(0))
		'WN(Jpeg.WaterMarkPosition(200,200,100,100,8)(1))
		'WN(Jpeg.WaterMarkFont("这是水印文字哦", "/temp/cfz.jpg",7,100,50,0,"","",True,24))
		'WN(Jpeg.WaterMarkJpeg("/temp/favicon.png", "/temp/cfz.jpg",2,100,50))
		'WN(Jpeg.Crop("/temp/cfz.jpg", "/temp/cfz2.jpg",0,0,100,100))
		WN(Jpeg.GifResize("/temp/1.gif", "/temp/2.gif",100,100,0))
	End Sub
	
	Public Sub tjson()
		Sa.Use("Json")
		'Json.Encode = True
		Json.StrEncode = True
		'Response.End
		Dim t_objarr : Set t_objarr = Json.New(1)
		t_objarr.Encode = True
		t_objarr.StrEncode = False
		'1子目录
		Dim t_objarr1 : Set t_objarr1 = Json.New(1)
		t_objarr1(Null) = Json.New(0)
		t_objarr1(Null)("icon") = "/static/icons/32X32/basket.gif"
		t_objarr1(Null)("id") = 11
		t_objarr1(Null)("MenuName") = "类别"
		t_objarr1(Null)("MenuID") = 11
		t_objarr1(Null)("text") = "类别"
		t_objarr1(Null)("MenuUrl") = "BaseManage/Categories.aspx"
		t_objarr1(Null)("MenuIcon") = "/static/icons/32X32/basket.gif"
		t_objarr1(Null)("MenuNo") = "BaseManageCategories"
		t_objarr1(Null)("MenuParentNo") = "BaseManage"
		t_objarr1(Null) = Json.New(0)
		t_objarr1(Null)("icon") = "/static/icons/32X32/product_169.gif"
		t_objarr1(Null)("id") = 12
		t_objarr1(Null)("MenuName") = "产品"
		t_objarr1(Null)("MenuID") = 12
		t_objarr1(Null)("text") = "产品"
		t_objarr1(Null)("MenuUrl") = "BaseManage/Products.aspx"
		t_objarr1(Null)("MenuIcon") = "/static/icons/32X32/product_169.gif"
		t_objarr1(Null)("MenuNo") = "BaseManageProducts"
		t_objarr1(Null)("MenuParentNo") = "BaseManage"
		t_objarr1(Null) = Json.New(0)
		t_objarr1(Null)("icon") = "/static/icons/32X32/suppliers.gif"
		t_objarr1(Null)("id") = 13
		t_objarr1(Null)("MenuName") = "供应商"
		t_objarr1(Null)("MenuID") = 13
		t_objarr1(Null)("text") = "供应商"
		t_objarr1(Null)("MenuUrl") = "BaseManage/Suppliers.aspx"
		t_objarr1(Null)("MenuIcon") = "/static/icons/32X32/suppliers.gif"
		t_objarr1(Null)("MenuNo") = "BaseManageSuppliers"
		t_objarr1(Null)("MenuParentNo") = "BaseManage"
		t_objarr1(Null) = Json.New(0)
		t_objarr1(Null)("icon") = "/static/icons/32X32/user.gif"
		t_objarr1(Null)("id") = 14
		t_objarr1(Null)("MenuName") = "员工"
		t_objarr1(Null)("MenuID") = 14
		t_objarr1(Null)("text") = "员工"
		t_objarr1(Null)("MenuUrl") = "BaseManage/Employees.aspx"
		t_objarr1(Null)("MenuIcon") = "/static/icons/32X32/user.gif"
		t_objarr1(Null)("MenuNo") = "BaseManageEmployees"
		t_objarr1(Null)("MenuParentNo") = "BaseManage"
		t_objarr1(Null) = Json.New(0)
		t_objarr1(Null)("icon") = "/static/icons/32X32/donate.gif"
		t_objarr1(Null)("id") = 15
		t_objarr1(Null)("MenuName") = "患者信息管理"
		t_objarr1(Null)("MenuID") = 15
		t_objarr1(Null)("text") = "患者信息管理"
		t_objarr1(Null)("MenuUrl") = "BaseManage/HuanZhe.aspx"
		t_objarr1(Null)("MenuIcon") = "/static/icons/32X32/donate.gif"
		t_objarr1(Null)("MenuNo") = "BaseManageHuanZhe"
		t_objarr1(Null)("MenuParentNo") = "BaseManage"
		t_objarr1(Null) = Json.New(0)
		t_objarr1(Null)("icon") = "/static/icons/32X32/world.gif"
		t_objarr1(Null)("id") = 16
		t_objarr1(Null)("MenuName") = "网站管理"
		t_objarr1(Null)("MenuID") = 16
		t_objarr1(Null)("text") = "网站管理"
		t_objarr1(Null)("MenuUrl") = "BaseManage/WebSite.aspx"
		t_objarr1(Null)("MenuIcon") = "/static/icons/32X32/world.gif"
		t_objarr1(Null)("MenuNo") = "BaseManageWebSite"
		t_objarr1(Null)("MenuParentNo") = "BaseManage"
		t_objarr1(Null) = Json.New(0)
		t_objarr1(Null)("icon") = "/static/icons/32X32/world.gif"
		t_objarr1(Null)("id") = 17
		t_objarr1(Null)("MenuName") = "病种管理"
		t_objarr1(Null)("MenuID") = 17
		t_objarr1(Null)("text") = "病种管理"
		t_objarr1(Null)("MenuUrl") = "BaseManage/BingZhong.aspx"
		t_objarr1(Null)("MenuIcon") = "/static/icons/32X32/invoice.gif"
		t_objarr1(Null)("MenuNo") = "BaseManageBingZhong"
		t_objarr1(Null)("MenuParentNo") = "BaseManage"
		'2子目录
		Dim t_objarr2 : Set t_objarr2 = Json.New(1)
		t_objarr2(Null) = Json.New(0)
		t_objarr2(Null)("icon") = "/static/icons/32X32/comment.gif"
		t_objarr2(Null)("id") = 21
		t_objarr2(Null)("MenuName") = "客户"
		t_objarr2(Null)("MenuID") = 21
		t_objarr2(Null)("text") = "客户"
		t_objarr2(Null)("MenuUrl") = "CustomerManage/Customers.aspx"
		t_objarr2(Null)("MenuIcon") = "/static/icons/32X32/comment.gif"
		t_objarr2(Null)("MenuNo") = "CustomerManageCustomers"
		t_objarr2(Null)("MenuParentNo") = "CustomerManage"
		'3子目录
		Dim t_objarr3 : Set t_objarr3 = Json.New(1)
		t_objarr3(Null) = Json.New(0)
		t_objarr3(Null)("icon") = "/static/icons/32X32/product_169.gif"
		t_objarr3(Null)("id") = 31
		t_objarr3(Null)("MenuName") = "订单"
		t_objarr3(Null)("MenuID") = 31
		t_objarr3(Null)("text") = "订单"
		t_objarr3(Null)("MenuUrl") = "OrderManage/Orders.aspx"
		t_objarr3(Null)("MenuIcon") = "/static/icons/32X32/product_169.gif"
		t_objarr3(Null)("MenuNo") = "OrderManageOrders"
		t_objarr3(Null)("MenuParentNo") = "OrderManage"
		t_objarr3(Null) = Json.New(0)
		t_objarr3(Null)("icon") = "/static/icons/32X32/order_159.gif"
		t_objarr3(Null)("id") = 32
		t_objarr3(Null)("MenuName") = "托运人"
		t_objarr3(Null)("MenuID") = 32
		t_objarr3(Null)("text") = "托运人"
		t_objarr3(Null)("MenuUrl") = "OrderManage/Shippers.aspx"
		t_objarr3(Null)("MenuIcon") = "/static/icons/32X32/order_159.gif"
		t_objarr3(Null)("MenuNo") = "OrderManageShippers"
		t_objarr3(Null)("MenuParentNo") = "OrderManage"
		'4子目录
		Dim t_objarr4 : Set t_objarr4 = Json.New(1)
		t_objarr4(Null) = Json.New(0)
		t_objarr4(Null)("icon") = "/static/icons/32X32/customers.gif"
		t_objarr4(Null)("id") = 41
		t_objarr4(Null)("MenuName") = "部门"
		t_objarr4(Null)("MenuID") = 41
		t_objarr4(Null)("text") = "部门"
		t_objarr4(Null)("MenuUrl") = "MemberManage/Department.aspx"
		t_objarr4(Null)("MenuIcon") = "/static/icons/32X32/customers.gif"
		t_objarr4(Null)("MenuNo") = "MemberManageDepartment"
		t_objarr4(Null)("MenuParentNo") = "MemberManage"
		t_objarr4(Null) = Json.New(0)
		t_objarr4(Null)("icon") = "/static/icons/32X32/my_account.gif"
		t_objarr4(Null)("id") = 42
		t_objarr4(Null)("MenuName") = "角色"
		t_objarr4(Null)("MenuID") = 42
		t_objarr4(Null)("text") = "角色"
		t_objarr4(Null)("MenuUrl") = "MemberManage/Role.aspx"
		t_objarr4(Null)("MenuIcon") = "/static/icons/32X32/my_account.gif"
		t_objarr4(Null)("MenuNo") = "MemberManageRole"
		t_objarr4(Null)("MenuParentNo") = "MemberManage"
		t_objarr4(Null) = Json.New(0)
		t_objarr4(Null)("icon") = "/static/icons/32X32/role.gif"
		t_objarr4(Null)("id") = 43
		t_objarr4(Null)("MenuName") = "用户"
		t_objarr4(Null)("MenuID") = 43
		t_objarr4(Null)("text") = "用户"
		t_objarr4(Null)("MenuUrl") = "MemberManage/User.aspx"
		t_objarr4(Null)("MenuIcon") = "/static/icons/32X32/role.gif"
		t_objarr4(Null)("MenuNo") = "MemberManageUser"
		t_objarr4(Null)("MenuParentNo") = "MemberManage"
		'5子目录
		Dim t_objarr5 : Set t_objarr5 = Json.New(1)
		t_objarr5(Null) = Json.New(0)
		t_objarr5(Null)("icon") = "/static/icons/32X32/sitemap.gif"
		t_objarr5(Null)("id") = 51
		t_objarr5(Null)("MenuName") = "菜单管理"
		t_objarr5(Null)("MenuID") = 51
		t_objarr5(Null)("text") = "菜单管理"
		t_objarr5(Null)("MenuUrl") = "system/menu.aspx"
		t_objarr5(Null)("MenuIcon") = "/static/icons/32X32/sitemap.gif"
		t_objarr5(Null)("MenuNo") = "sysmenu"
		t_objarr5(Null)("MenuParentNo") = "system"
		t_objarr5(Null) = Json.New(0)
		t_objarr5(Null)("icon") = "/static/icons/32X32/link.gif"
		t_objarr5(Null)("id") = 52
		t_objarr5(Null)("MenuName") = "权限中心"
		t_objarr5(Null)("MenuID") = 52
		t_objarr5(Null)("text") = "权限中心"
		t_objarr5(Null)("MenuUrl") = "system/right.aspx"
		t_objarr5(Null)("MenuIcon") = "/static/icons/32X32/link.gif"
		t_objarr5(Null)("MenuNo") = "sysright"
		t_objarr5(Null)("MenuParentNo") = "system"
		t_objarr5(Null) = Json.New(0)
		t_objarr5(Null)("icon") = "/static/icons/32X32/setup.gif"
		t_objarr5(Null)("id") = 53
		t_objarr5(Null)("MenuName") = "数据权限"
		t_objarr5(Null)("MenuID") = 53
		t_objarr5(Null)("text") = "数据权限"
		t_objarr5(Null)("MenuUrl") = "system/DataPrivilege.aspx"
		t_objarr5(Null)("MenuIcon") = "/static/icons/32X32/setup.gif"
		t_objarr5(Null)("MenuNo") = "sysDataPrivilege"
		t_objarr5(Null)("MenuParentNo") = "system"
		t_objarr5(Null) = Json.New(0)
		t_objarr5(Null)("icon") = "/static/icons/32X32/config.gif"
		t_objarr5(Null)("id") = 54
		t_objarr5(Null)("MenuName") = "底层权限"
		t_objarr5(Null)("MenuID") = 54
		t_objarr5(Null)("text") = "底层权限"
		t_objarr5(Null)("MenuUrl") = "system/AdminMethod.aspx"
		t_objarr5(Null)("MenuIcon") = "/static/icons/32X32/config.gif"
		t_objarr5(Null)("MenuNo") = "sysAdminMethodPrivilege"
		t_objarr5(Null)("MenuParentNo") = "system"
		t_objarr5(Null) = Json.New(0)
		t_objarr5(Null)("icon") = "/static/icons/32X32/consulting.gif"
		t_objarr5(Null)("id") = 55
		t_objarr5(Null)("MenuName") = "字段权限"
		t_objarr5(Null)("MenuID") = 55
		t_objarr5(Null)("text") = "字段权限"
		t_objarr5(Null)("MenuUrl") = "system/Configuration.aspx"
		t_objarr5(Null)("MenuIcon") = "/static/icons/32X32/consulting.gif"
		t_objarr5(Null)("MenuNo") = "sysConfiguration"
		t_objarr5(Null)("MenuParentNo") = "system"
		'If Not IsOut Then
			'1
			t_objarr(Null) = Json.New(0)
			t_objarr(Null)("icon") = "/static/icons/silkicons/application.png"
			t_objarr(Null)("id") = 1
			t_objarr(Null)("children") = t_objarr1
			t_objarr(Null)("MenuName") = "信息管理"
			t_objarr(Null)("MenuID") = 1
			t_objarr(Null)("text") = "信息管理"
			t_objarr(Null)("MenuUrl") = Null
			t_objarr(Null)("MenuIcon") = "/static/icons/silkicons/application.png"
			t_objarr(Null)("MenuNo") = "BaseManage"
			t_objarr(Null)("MenuParentNo") = Null
			'2
			t_objarr(Null) = Json.New(0)
			t_objarr(Null)("icon") = "/static/icons/silkicons/application.png"
			t_objarr(Null)("id") = 2
			t_objarr(Null)("children") = t_objarr2
			t_objarr(Null)("MenuName") = "客户管理"
			t_objarr(Null)("MenuID") = 2
			t_objarr(Null)("text") = "客户管理"
			t_objarr(Null)("MenuUrl") = Null
			t_objarr(Null)("MenuIcon") = "/static/icons/silkicons/application.png"
			t_objarr(Null)("MenuNo") = "CustomerManage"
			t_objarr(Null)("MenuParentNo") = Null
			'3
			t_objarr(Null) = Json.New(0)
			t_objarr(Null)("icon") = "/static/icons/32X32/order_159.gif"
			t_objarr(Null)("id") = 3
			t_objarr(Null)("children") = t_objarr3
			t_objarr(Null)("MenuName") = "订单管理"
			t_objarr(Null)("MenuID") = 3
			t_objarr(Null)("text") = "订单管理"
			t_objarr(Null)("MenuUrl") = Null
			t_objarr(Null)("MenuIcon") = "/static/icons/32X32/order_159.gif"
			t_objarr(Null)("MenuNo") = "OrderManage"
			t_objarr(Null)("MenuParentNo") = Null
			'4
			t_objarr(Null) = Json.New(0)
			t_objarr(Null)("icon") = "/static/icons/silkicons/application.png"
			t_objarr(Null)("id") = 4
			t_objarr(Null)("children") = t_objarr4
			t_objarr(Null)("MenuName") = "组织架构"
			t_objarr(Null)("MenuID") = 4
			t_objarr(Null)("text") = "组织架构"
			t_objarr(Null)("MenuUrl") = Null
			t_objarr(Null)("MenuIcon") = "/static/icons/silkicons/application.png"
			t_objarr(Null)("MenuNo") = "MemberManage"
			t_objarr(Null)("MenuParentNo") = Null
			'5
			t_objarr(Null) = Json.New(0)
			t_objarr(Null)("icon") = "/static/icons/32X32/future_projects.gif"
			t_objarr(Null)("id") = 5
			t_objarr(Null)("children") = t_objarr5
			t_objarr(Null)("MenuName") = "系统管理"
			t_objarr(Null)("MenuID") = 5
			t_objarr(Null)("text") = "系统管理"
			t_objarr(Null)("MenuUrl") = Null
			t_objarr(Null)("MenuIcon") = "/static/icons/32X32/future_projects.gif"
			t_objarr(Null)("MenuNo") = "system"
			t_objarr(Null)("MenuParentNo") = Null
		'End If
		t_objarr.Flush
	End Sub
	
	'''测试函数别名库
	Public Sub talias()
		W(Rand_s(1,100))
	End Sub
	
	'''测试List
	Public Sub tlist()
		Sa.Use("List")
		List.OverError = False
		WN(List.IgnoreCase)
		List.IgnoreCase = False
		Dim t_o : Set t_o = List.New()
		WN(t_o.Size)
		WN(List.Length)
		List.Data = Array("零", "壹", "贰", "叁")
		Dim t_a1 : t_a1 = List.Data
		For i=0 To Ubound(t_a1)
			WN(t_a1(i) & "--")
		Next
		WN(List.End)
		t_o.Hash = Array("zero:零", "one:壹", "two:贰", "three:叁")
		Dim t_a2 : t_a2 = t_o.Hash
		For i = 0 To Ubound(t_a2)
			WN "arr("&i&") 的值是：" & t_a2(i)
		Next
		Dim t_o1 : Set t_o1 = List.Clone()
		WN(t_o1.Length)
		Dim t_dic : Set t_dic = Server.CreateObject(C_DicName)
		t_dic("001") = "001001"
		t_dic("002") = "001002"
		t_dic("003") = "001003"
		t_dic("004") = "001004"
		t_o.Maps = t_dic
		t_o.At("005") = "002005"
		WN(t_o("005"))
		Dim t_dic2 : Set t_dic2 = t_o.Maps
		For Each k In t_dic2
			WN(k & "---" & t_dic2(k))
		Next
		WN(VarType("0"))
		WN(VarType(0))
	End Sub
	
	'''测试log
	Public Sub tlog()
		Sa.Use("Log")
		Log.Debug("测试一下")
		Log.Info("提醒一下")
		Log.Warn("注意一下")
		Log.Error("发生错误")
		Log.Level = "Warning"
		Log.Path = "/data/log/t.log"
		Log.Format = 3
		Log.Write("这是日志主体内容")
		WN("OK")
	End Sub
	
	Public Sub tmail()
		Sa.Use("Mail")
		'Dim t_a
		't_a = Mail.MailArray("""网易""<test1@163.com>;""腾讯""<test2@qq.com>;",1)
		'For i = 0 To Ubound(t_a)
		'	WN "arr("&i&") 的值是：" & t_a(i)
		'Next
		't_a = Mail.MailArray("""网易""<test1@163.com>;",1)
		'For i = 0 To Ubound(t_a)
		'	WN "arr("&i&") 的值是：" & t_a(i)
		'Next
		't_a = Mail.MailArray("""网易""<test1@163.com>",0)
		'For i = 0 To Ubound(t_a)
		'	WN "arr("&i&") 的值是：" & t_a(i)
		'Next
		't_a = Mail.MailArray("test1@163.com;test2@qq.com;",0)
		'For i = 0 To Ubound(t_a)
		'	WN "arr("&i&") 的值是：" & t_a(i)
		'Next
		't_a = Mail.MailArray("test1@163.com;test2@qq.com;",1)
		'For i = 0 To Ubound(t_a)
		'	WN "arr("&i&") 的值是：" & t_a(i)
		'Next
		't_a = Mail.MailArray(Array("'网易'<test1@163.com>" ,"'腾讯'<test2@qq.com>"),1)
		'For i = 0 To Ubound(t_a)
		'	WN "arr("&i&") 的值是：" & t_a(i)
		'Next
		't_a = Mail.MailArray(Array("网易<test1@163.com>" ,"腾讯<test215211@qq.com>"),1)
		'For i = 0 To Ubound(t_a)
		'	WN "arr("&i&") 的值是：" & t_a(i)
		'Next
		't_a = Mail.MailArray(Array("网易<test1@163.com>" ,"腾讯<test215211@qq.com>"),0)
		'For i = 0 To Ubound(t_a)
		'	WN "arr("&i&") 的值是：" & t_a(i)
		'Next
		Mail.SMTP = "smtp.deya.cn"
		Mail.LoginName = "fengzhan_chen@deya.cn"
		Mail.LoginPass = "daowomima-4"
		Mail.FromMail = "fengzhan_chen@deya.cn"
		Mail.FromName = "HandMU"
		Mail.ContentType = "text/html"
		Mail.Charset = "GB2312"
		Mail.ToMail = "大雅<fengzhan_chen@deya.cn>;HandMU<411370875@qq.com>"
		Mail.Subject = "这是个测试邮件"
		Mail.Content = "这是邮件内容，含有HTML<a href=""http://www.ashapo.com"">主页</a>"
		Mail.Priority = 1
		Mail.Port = 25
		Mail.Domain = "deya.cn"
		Mail.CSend()
		WN(Mail.Code)
		WN(Mail.Error & "|||")
	End Sub
	
	'''测试MD5
	Public Sub tmd5()
		Sa.Use("Md5")
		WN(Ucase(Md5.To32("陈峰展")))
		WN(Md5.To16("陈峰展"))
		WN(Ucase(Md5.To32("123456")))
		WN(Md5.To32("abcdedf"))
	End Sub
	
	'''测试Pager
	Public Sub tpager()
		Sa.Use("Pager")
		Pager.PageVar = "pp"
		Pager.TargetPage = "index2.asp"
		Pager.PageSize = 20
		'Pager.PageNow = 18
		Pager.Recordcount = 1000
		Pager.FormatUrlFun = "U({0},0)"
		Pager.OptionLeft = "第"
		Pager.OptionRight = "页"
		Pager.InputId = "pageid"
		Call Pager.Set("first", "<a href=""{url}"" class=""first"">第一页</a>")
		Pager.Forced("Last") = True
		Pager.Identifier = "123456"
		Pager.Model = "{list}{jump}"
		Call Pager.AddPara("m", "test")
		Call Pager.AddPara("a", "tpager")
		'Pager.PageNow = 12
		Pager.PageCount = 99
		W(Pager.Out)
	End Sub
	
	'''测试session
	Public Sub tsesion()
		Sa.Use("Sesion")
		Sesion("123") = "123"
		Sesion("321") = "123"
		WN(Sesion("123"))
		WN(Sesion.Compare("123","3211"))
	End Sub
	
	'''测试SHA1
	Public Sub tsha1()
		Sa.Use("SHA1")
		WN(SHA1("123456"))
		'WN(SHA1("ABCDEFG"))
		'WN(SHA1("abcdefg"))
		WN(SHA1("哈哈"))
		'WN(SHA1("abcd123"))
		'WN(SHA1("123DEFG"))
		'WN(SHA1("123哈哈"))
		'WN(SHA1("abcd哈哈"))
		'WN(SHA1("哈哈ABCD"))
		WN(Len("哈哈"))
		WN(Sha1.strLen_("哈哈"))
	End Sub
End Class
%>